/**
 *  Copyright 2010 ShenYang voole Co. Ltd.
 *  All right reserved. 
 */
package com.dianning.service;

import java.util.List;

import com.dianning.bean.Profile;
import com.dianning.bean.ProfileInfo;
import com.dianning.bean.ProfileLink;
import com.dianning.bean.Visitor;
import com.dianning.exception.DianningException;

/**
 * 功能描述:Profile操作接口
 *
 * 创建日期 Apr 10, 2010
 *
 * @author zhangbaochao
 *
 * @version 1.0
 *
 */
public interface ProfileService {

	/**
	 * 保存Profile对象
	 * 
	 * @param profile
	 * 			Profile对象
	 * @return Profile
	 * 			Profile对象
	 */
	public Profile updateProfile(Profile profile);
	/**
	 * 根据主键ID获取Profile对象
	 * 
	 * @param id
	 * 			主键ID
	 * @return Profile
	 * 			Profile对象
	 */
	public Profile findProfileByUid(long uid);
	
	/**
	 * 保存ProfileInfo对象
	 * 
	 * @param profileInfo
	 * 			ProfileInfo对象
	 * @return ProfileInfo
	 * 			ProfileInfo对象
	 */
	public ProfileInfo saveProfileInfo(ProfileInfo profileInfo);
	
	/**
	 * 保存ProfileInfo对象
	 * 
	 * @param profileInfo
	 * 			ProfileInfo对象
	 * @return ProfileInfo
	 * 			ProfileInfo对象
	 */
	public ProfileInfo updateProfileInfo(ProfileInfo profileInfo);
	
	/**
	 * 删除ProfileInfo对象
	 */
	public void removeProfileInfo(ProfileInfo profileInfo);
	
	/**
	 * 根据主键ID获取ProfileInfo对象
	 * 
	 * @param id
	 * 			主键ID
	 * @return ProfileInfo
	 * 			ProfileInfo对象
	 */
	public ProfileInfo findProfileInfoById(long id);
	
	/**
	 * 根据webkey 获取Profile对象
	 * 
	 * @param webkey
	 * 			String
	 * @return Profile
	 * 			Profile对象
	 */
	public Profile findProfileByWebkey(String webkey);
	
	/**
	 * 获取ProfileInfo个数
	 * 
	 * @return int
	 * 			ProfileInfo个数
	 */
	public long getProfileInfoNum(long uid,String type);
	
	/**
	 * 获取ProfileInfo列表
	 * 
	 * @param orderby
	 *            String
	 * @param ascOrDesc
	 *            int
	 * @param firstResult
	 *            int
	 * @param maxResults
	 *            int
	 * @return List
	 * 			ProfileInfo对象列表
	 */
	public List findProfileInfos(long uid,String type, String orderby, int ascOrDesc);
	
	/**
	 * 保存ProfileLink对象
	 * 
	 * @param ProfileLink
	 * 			ProfileLink对象
	 * @return ProfileLink
	 * 			ProfileLink对象
	 */
	public ProfileLink saveProfileLink(ProfileLink profileLink);
	
	/**
	 * 保存ProfileLink对象
	 * 
	 * @param ProfileLink
	 * 			ProfileLink对象
	 * @return ProfileLink
	 * 			ProfileLink对象
	 */
	public ProfileLink updateProfileLink(ProfileLink profileLink);
	
	/**
	 * 删除ProfileLink对象
	 */
	public void removeProfileLink(ProfileLink profileLink);
	
	/**
	 * 根据主键ID获取ProfileLink对象
	 * 
	 * @param id
	 * 			主键ID
	 * @return ProfileLink
	 * 			ProfileLink对象
	 */
	public ProfileLink findProfileLinkById(long id);
	
	/**
	 * 获取ProfileLink个数
	 * 
	 * @return int
	 * 			ProfileLink个数
	 */
	public long getProfileLinkNum(long uid);
	
	/**
	 * 获取ProfileLink列表
	 * 
	 * @param orderby
	 *            String
	 * @param ascOrDesc
	 *            int
	 * @param firstResult
	 *            int
	 * @param maxResults
	 *            int
	 * @return List
	 * 			ProfileLink对象列表
	 */
	public List findProfileLinks(long uid,String orderby, int ascOrDesc);
}
